<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>ZK OSS</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/ZK_OSS"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-ZK_OSS rootpage-ZK_OSS skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">ZK OSS</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">
<p><b>ZK OSS</b> ist ein <a href="Open-source" class="mw-redirect" title="Open-source">quell-offenes</a>, in <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a> entwickeltes <a href="Ajax_(Programmierung)" title="Ajax (Programmierung)">Ajax</a>-<a href="Webframework" title="Webframework">Webframework</a><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> des Unternehmens Potix Corporation, das Nutzern ermöglicht, eine <a href="Graphical_user_interface" class="mw-redirect" title="Graphical user interface">grafische Benutzeroberfläche</a> für <a href="Webanwendung" title="Webanwendung">Webanwendung</a> zu erstellen. ZK besteht aus Ajax-<a href="Event-driven_programming" class="mw-redirect" title="Event-driven programming">event-driven</a>-Mechanismen, sowie <a href="XML_User_Interface_Language" title="XML User Interface Language">XUL</a>, <a href="XHTML" class="mw-redirect" title="XHTML">XHTML</a> und ZUML, einer Markup-Sprache, um die Benutzeroberfläche zu erstellen.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>ZK verwendet eine serverlastige Methode, in der die Synchronisierung der Komponenten und der Event-Pipeline zwischen Nutzern und Servern automatisch von ZK abgehandelt werden. ZK benutzt AJAX-Anfragen an den <a href="Webserver" title="Webserver">Server</a>, um den internen Status der einzelnen Komponenten zu aktualisieren. ZK lädt hierzu eine <a href="JSON" title="JSON">JSON</a> Beschreibung des Webseite herunter und rendert diese dann auf der Nutzerseite. Weiterhin lädt ZK die Webseite sequentiell über mehrere Anfragen herunter, und nicht den gesamten Inhalt auf einmal. Insbesondere bedeutet dies, dass ZK nicht Formfelder mit GET- oder POST-Anfragen an den Server sendet, wie vom Standard-Anfrage-Antwort-Mechanismus vorgesehen wird.
</p>
<div class="mw-heading mw-heading2"><h2 id="Technik">Technik</h2></div>
<p>Die Programmierung der Logik erfolgt in <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>, die Definition des Layouts in sogenannten ZUL-Dateien, welche ähnlich wie <a href="JavaServer_Pages" class="mw-redirect" title="JavaServer Pages">JSP</a>-Dateien aufgebaut sind und auch HTML-Elemente und <a href="JavaScript" title="JavaScript">JavaScript</a>-Code enthalten können. Über „autowiring-by-name“ werden für die verschiedenen Komponenten (Widgets) der Logikteil in der Java-Datei mit dem Layoutteil in der ZUL-Datei automatisch verknüpft. Bei einem Request vom <a href="Webbrowser" title="Webbrowser">Webbrowser</a> wird zuerst die Logik in der Java-Datei serverseitig verarbeitet und dann mit dem in der ZUL-Datei definierten <a href="Layout" title="Layout">Layout</a> die fertige Antwort erzeugt und zum Browser zurückgeschickt. Im Browser wird der Request zusammen mit dem in JavaScript/<a href="Ajax_(Programmierung)" title="Ajax (Programmierung)">Ajax</a> (vor-)implementierten clientseitigen Komponententeil verarbeitet und angezeigt. Das Prinzip ist ähnlich wie auch bei anderen serverseitigen Webframeworks, wie zum Beispiel <a href="Vaadin" title="Vaadin">Vaadin</a>.
</p><p>Üblicherweise enthält die ZUL-Datei aber nicht nur das Layout, sondern es ist oft auch noch Logik im Stile von JavaScript-Befehlen zu den einzelnen Komponenten definiert. Dies wird in den meisten Fällen vorgenommen, um clientseitige Interaktionen zwischen den verschiedenen Komponenten einer Webseite zu implementieren und so Requests an den Server zu vermeiden. Dadurch wird jedoch die Trennung von Logik und Layout nicht mehr sauber eingehalten. Andererseits hilft die Möglichkeit, in den ZUL-Dateien <a href="HTML" class="mw-redirect" title="HTML">HTML</a>-Tags, <a href="Cascading_Style_Sheets" title="Cascading Style Sheets">CSS</a>-Styles oder JavaScript-Code einzufügen, oft über die ZK-Basis-Funktionalitäten hinaus schnell und einfach Anpassungen und Erweiterungen durchzuführen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Unterschiede_zu_XUL">Unterschiede zu XUL</h2></div>
<ul><li>ZK ist ein serverseitiges Framework, wodurch die Anforderung an den Client, <a href="Gecko_(Software)" title="Gecko (Software)">Gecko</a> installiert zu haben, entfällt. Stattdessen verarbeitet ZK ZUML-Dateien direkt und gibt dhtml-Dateien für den Browser zurück.</li>
<li>ZK ist direkt an Java angebunden – dadurch ist es möglich, komplexere Programmierlogik zu verwenden.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Lizenz">Lizenz</h2></div>
<p>ZK OSS ist in drei Editionen verfügbar:
Die Edition <i>ZK CE</i> (Community-Edition) steht unter der <a href="Open_Source" title="Open Source">Open-Source</a>-Lizenz <a href="GNU_Lesser_General_Public_License" title="GNU Lesser General Public License">LGPL</a>.
Die Editionen <i>ZK PE</i> und <i>ZK EE</i> sind unter der <i>ZK Open Source License</i> oder einer kommerziellen Lizenz verfügbar.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>Die kostenpflichtigen Editionen bieten zusätzliche Funktionalitäten wie z. B. Charts und Pivottabellen, welche vor allem für Datenkollektion und Visualisierungen verwendet werden können. ZK Charts ist eine API zur Visualisierung der serverseitigen Daten für den Nutzer.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Die ZK-Pivottabelle erlaubt dem Programmierer, Daten in einer Tabellenform zu sammeln und vorinstallierte Werkzeuge zur Visualisierung zu benutzen.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.zkoss.org/">Offizielle Website</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external free" href="https://link.springer.com/book/10.1007%2F978-1-4302-0440-4">https://link.springer.com/book/10.1007%2F978-1-4302-0440-4</a></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.zkoss.org/wiki/ZUML_Reference/ZUML"><i>ZUML Reference/ZUML.</i></a> In: <i>zkoss.org.</i><span class="Abrufdatum"> Abgerufen am 15. Juli 2025</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AZK+OSS&rft.title=ZUML+Reference%2FZUML&rft.description=ZUML+Reference%2FZUML&rft.identifier=https%3A%2F%2Fwww.zkoss.org%2Fwiki%2FZUML_Reference%2FZUML&rft.language=de"> </span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.zkoss.org/license"><i>Licensing.</i></a> Website der <i>Potix Corporation</i> (zkoss.org),<span class="Abrufdatum"> abgerufen am 17. März 2017</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AZK+OSS&rft.title=Licensing&rft.description=Licensing&rft.identifier=https%3A%2F%2Fwww.zkoss.org%2Flicense&rft.publisher=Website+der+%27%27Potix+Corporation%27%27+%28zkoss.org%29"> </span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external free" href="https://www.zkoss.org/wiki/ZK_Charts_Essentials">https://www.zkoss.org/wiki/ZK_Charts_Essentials</a></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external free" href="https://www.zkoss.org/wiki/ZK_Pivottable_Essentials">https://www.zkoss.org/wiki/ZK_Pivottable_Essentials</a></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-07-15" href="https://de.wikipedia.org/wiki/?title=ZK_OSS&oldid=257932638">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>